package com.wyx.suanfa;

import javax.swing.tree.TreeNode;

/**
 * @author 王艺锡
 * @version 1.0
 */
public class flatten {
    //给你二叉树的根结点 root ，请你将它展开为一个单链表：
    //
    //展开后的单链表应该同样使用 TreeNode ，其中 right 子指针指向链表中下一个结点，而左子指针始终为 null 。
    //展开后的单链表应该与二叉树 先序遍历 顺序相同。
    public static void main(String[] args) {
    }
}
/*
* /**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }

class Solution {
    public void flatten(TreeNode root) {
        while(root != null){
            //如果左子树为空
            if(root.left == null){
                root = root.right;
            }else{//如果左子树不为空
                //找到左子树的最右节点
                TreeNode temp = root.left;
                while(temp.right != null){
                    temp = temp.right;
                }
                temp.right = root.right;
                root.right = root.left;
                root.left = null;
                root = root.right;
            }
        }
    }
}*/